/*
* TFRuleCheckerInterface.h
*
* This class checks the Troops & Flags game state
* and is responsible for enforcing all the rules 
* of the game to ensure all gameplay is valid.
* 
* Author: Rapid Dojo
* Date: Oct 19, 2007
*/

#ifndef TFRuleCheckerInterface_H
#define TFRuleCheckerInterface_H

#include "TFConstants.h"
#include "TFModelInterface.h"
#include "TFBoard.h"
#include "TFGameTurn.h"

class TFBoard;

class TFRuleCheckerInterface
{
public:

	virtual HRESULT CheckGame(){return E_FAIL;}
	//virtual void SetModel(TFModelInterface * iTFModel){_model = iTFModel;}
	virtual ~TFRuleCheckerInterface(){}
	virtual bool CanPlaceBarricade(int numPointsThisTurn){return 0;}
	virtual bool CanPlaceFlagFortification(int numPointsThisTurn){return 0;}
	virtual bool LegalMove(TFBoard *iCurrentBoard, TFGameTurn* myTurn, bool spendPoints = false){return 0;}
	virtual int CostToCapture(TFGamePiece *iPiece, int yourColor){return 1;}
	virtual bool CanPlacePieceHere(int row, int col,TF_ADD_PIECE piece, TF_PLAYERS color, TFBoard *iCurrentBoard){return false;}

protected:
//  TFModelInterface * _model;
};

#endif
